//
// Task.hpp for  in /home/herpec_j/Dropbox/Projets/raytracer-2016/Includes/DesignPattern/ThreadPool/
//
// Made by Jonathan
// Login   <ledey_l@epitech.net>
//
// Started on  Fri Sep 20 13:47:46 2013 Jonathan
// Last update Fri Sep 20 14:43:58 2013 Jonathan
//

#ifndef			TASK_HPP_
# define		TASK_HPP_

# include		<pthread.h>

typedef void		*(*FuncPtr)(void *);

namespace		DesignPattern
{
  namespace		ThreadPool
  {
    class		Task
    {
    private:
      Task(void);
      Task(Task const &rCopy);
      Task		&operator=(Task const &rCopy);

      FuncPtr		mFuncPtr;
      void		*mArg;

    protected:

    public:
      Task(FuncPtr rFuncPtr, void *rArg);
      ~Task(void);

      void		Run(void) const;
    };
  };
};

#endif			/* TASK_HPP_ */
